package car.slyc.controller;

import car.slyc.util.DataJson;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

//  idea 后台   用于上传
@Controller
@RequestMapping("/upload")
public class UploadController {
    //定义一个目标路径，就是我们要把图片上传到的位置
    final String BASE_PATH = "E:\\code\\slyc\\slyc\\src\\main\\resources\\public\\";


    @RequestMapping("/file")
    @ResponseBody
    public DataJson uploadImage(@RequestParam(value = "file") MultipartFile file) {
        //获得上传文件的名称
        String filename = file.getOriginalFilename();
        System.out.println("获取的图片名称"+filename);
        //为了保证图片在服务器中名字的唯一性，这个是我呢要用UUID来对filename进行改写
        String uuid = UUID.randomUUID().toString().replace("-","");
        // 将生成的UIDD和filename进行拼接
        String newFilename = uuid+filename;
        //创建一个文件实例对象
        File image = new File(BASE_PATH, newFilename);
        //对这个文件进行上传操作
        try {
            file.transferTo(image);
        } catch (IOException e) {
            return null;
        }
        DataJson dataJson = new DataJson();
        if (newFilename != null) {
            dataJson.setCode(1);
            dataJson.setMsg("上传成功");
            HashMap<String, String> map = new HashMap<>();
            map.put("src", newFilename);
            dataJson.setData(map);
        } else {
            dataJson.setCode(0);
            dataJson.setMsg("上传失败");
        }
        return dataJson;
    }


    //小程序  单个文件上传
    @RequestMapping("/qt/wuxfile")
    @ResponseBody
    public String uploadfile( @RequestParam("file") MultipartFile file) {

        //调用我们写的上传文件的工具类
        System.out.println("参数数据：" + file.getSize());
        String filename = file.getOriginalFilename();
        //创建一个文件实例对象
        File image = new File(BASE_PATH, filename);
        //对这个文件进行上传操作
        try {
            file.transferTo(image);
        } catch (IOException e) {
            return null;
        }
        System.out.println("图片名称" + filename);
        return filename;
    }



//    小程序多个文件上传
    @RequestMapping("/qt/wuxfiles")
    @ResponseBody
    public Map uploadfiles(@RequestParam("file") MultipartFile file){
            System.out.println("是否执行此行1");
            System.out.println(file.getOriginalFilename());
            String filename = file.getOriginalFilename();
            //创建一个文件实例对象
            File image = new File(BASE_PATH, filename);
            //对这个文件进行上传操作
            try {
                file.transferTo(image);
            } catch (IOException e) {
                return null;
            }
            Map<String,String> m=new HashMap<>();
            m.put("uid","-12");
            m.put("url",filename);
            m.put("state","done");
            System.out.println(m);
            return  m ;

    }
}

